namespace OasisCiq.Xal
{
    using System.Collections.Specialized;
    using CommonTypes;
    using External;
    using XS;

    /// <summary>
    /// Data associated with the SubAdministrative Area. e.g.
    /// Full name of sub administrative area or part of it.
    /// </summary>
    public class SubAdministrativeAreaNameElement : CTString, IAbbreviationGroup, IExtendedAttributes
    {
        public SubAdministrativeAreaNameElement(string value)
            : base(value)
        {
        }

        public virtual XSBoolean Abbreviation { get; set; }

        /// <summary>
        /// semantics of data associated with name
        /// </summary>
        public virtual SubAdministrativeAreaNameTypeList NameType { get; set; }

        /// <summary>
        /// Name of administrative area represented as a code. e.g. "COL" for COLORADO
        /// </summary>
        public virtual SubAdministrativeAreaNameCodeList NameCode { get; set; }

        /// <summary>
        /// Type of code used to represent name as a code
        /// </summary>
        public virtual CTString NameCodeType { get; set; }

        public virtual NameValueCollection ExtendedAttributes { get; set; }
    }
}